package com.sdp.right.flow.service;

import java.util.List;

import com.sdp.core.bizc.vo.BusinessContext;
import com.sdp.right.entity.SysFlowTaskHis;
import com.sdp.right.flow.dto.FlowParam;

public interface ISysFlowService{

	/**
	 * 获取当前节点信息
	 * @param templateNo
	 * @param templateVersion
	 * @param nodeId
	 * @return
	 */
	FlowParam getCurrentNode(String templateNo,String templateVersion,String nodeId);
	
	/**
	 * 获取当前任务内码
	 * @param taskId
	 * @return
	 */
	FlowParam getCurrentTask(String taskId);
	
	/**
	 * 获取已经审批过的任务记录
	 * @param instanceId
	 * @return
	 */
	List<SysFlowTaskHis> getApprovedFlowTaskHis(String instanceId);
	
	/**
	 * 初始化流程
	 * @param templateNo
	 * @return
	 */
	FlowParam initFlow(String templateNo);
	
	/**
	 * 流程启动
	 * @param flowParam
	 * @return
	 */
	String startUpFlow(FlowParam flowParam);
	
	/**
	 * 流程提交
	 * @param flowParam
	 */
	BusinessContext comitFlow(FlowParam flowParam);
	
	void removeFlowByInstanceId(String instanceId);
	
	
}
